9.5 Список Задач + SQLite + Interface + DI
7 из 7 шагов пройдено

 Список Задач + SQLite + Interface + DI

➡️Ссылка на репозиторий с кодом этого урока

Локальное хранилище

На предыдущем уроке мы провели важную подготовительную работу: применили принцип инверсии зависимостей, создав абстрактный интерфейс IStorageService

Мы сделали так, что наша ToDoViewModel больше не зависит от конкретной реализации хранилища (SharedPreferencesService), а только от "контракта"!

Заменим SharedPreferences, который хранит данные в простом формате "ключ-значение", на полноценную реляционную базу данных SQLite. Это более мощное и подходящее решение для хранения структурированных данных, таких как список задач

Цели:

  1. Создать новый сервис SqliteService, который реализует тот же интерфейс IStorageService.
  2. "Подменить" сервис в одной строке кода, не трогая ViewModel и UI.
  3. Понять преимущества использования баз данных для структурированной информации.

Что такое реляционная база данных

Реляционная база данных

 Это способ хранения данных в виде набора взаимосвязанных таблиц.

Представьте себе обычную электронную таблицу, например, в Excel. Реляционная база данных использует очень похожую структуру.

  • Таблицы (Tables): Это основной строительный блок. Каждая таблица хранит информацию об одном конкретном типе объектов или сущностей, например, "Задачи" или "Настройки"
  • Столбцы (Columns): Их также называют атрибутами или полями. Каждый столбец описывает одну характеристику сущности и имеет строгий тип данных (число, текст, дата и т.д.). Например, в нашей таблице tasks были столбцы: id (число), text (текст) и isDone (число, представляющее булево значение)
  • Строки (Rows): Их также называют записями. Каждая строка представляет один конкретный экземпляр сущности. Например, одна строка в таблице tasks это одна конкретная задача со своим уникальным id, текстом и статусом выполнения
id text isDone
1 Выучить Python true
2 Купить GTA IV false
3 Поспать false
4 Отдохнуть false

 

id isDarkMode
1 false

Добавление зависимостей

Для работы с SQLite в Flutter используется популярный пакет sqflite. Также понадобится пакет path для корректного определения пути к файлу базы данных на разных платформах

Откройте терминал в корне проекта и выполните команду:

flutter pub add sqflite path

Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий